// 解密传输
// import { decrypt } from './crypto'

const config = {
  type: 'localStorage', // 本地存储类型 localStorage/sessionStorage
  expire: 1, //过期时间 单位：秒
  isEncrypt: true // 默认加密 为了调试方便, 开发过程中可以不加密
};

//方式一： 手动存储
// 设置 setStorage
// export const setStorage = (key, value, expire = 0) => {
//   if (value === '' || value === null || value === undefined) {
//     value = null
//   }
//   if (isNaN(expire) || expire < 1) throw new Error('Expire must be a number')
//   expire = (expire ? expire : config.expire) * 60000
//   let data = {
//     value: value, // 存储值
//     time: Date.now(), //存值时间戳
//     expire: expire, // 过期时间
//   }

//   window[config.type].setItem(key, JSON.stringify(data))
// }
// 方式二：pinia 自动存储(默认这种方式)

// 获取 token 未加密
export const getToken = (key) => {
  // key 不存在判断 或者没有存储过 返回null
  if (!window[config.type].getItem(key) || JSON.stringify(window[config.type].getItem(key)) === 'null') {
    return null;
  }
  const storage = JSON.parse(window[config.type].getItem(key));
  return storage.tk;
};

// 获取 soreKeg 加密
export const getStorage = (key) => {
  // key 不存在判断 或者没有存储过 返回null
  if (!window[config.type].getItem(key) || JSON.stringify(window[config.type].getItem(key)) === 'null') {
    return null;
  }
  const storage = JSON.parse(window[config.type].getItem(key));
  // key 存在
  return storage[key];
};

// 删除 removeStorage
export const removeStorage = (key) => {
  window[config.type].removeItem(key);
};

// 清空 clearStorage
export const clearStorage = () => {
  window[config.type].clear();
};
